/*
 * Cliente
 */

package htmlreaderclient;

import htmlreader.Comando;
import java.io.File;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 
 * @author leopoldes
 */
public class Cliente {
    
    private static Socket socketCliente;
    private static String ipServidor;
    private static int portaServidor;
    private static int comando;
    private static File[] listaDeArquivos;

    public Cliente(String ip, int porta){
        Cliente.ipServidor = ip;
        Cliente.portaServidor = porta;

    }

    public void pedeListaDeArquivos() throws IOException{
        /**
         * utiliza-se da conexão aberta para fazer a solicitação
         * da lista de arquivos do servidor         *
         */

       // this.transfereDados(Cliente.comando);
        

    }

    public void recuperaArquivoDaLista(){
        /**
         * Escolhe um arquivo da lista do servidor
         */
    }

    public void transformarDadosLidos(){
        //#TODO testar tipo de arquivo recebido e fazer o cast
        //switch(){
        //
        //}
        //p = (Pessoa) input.readObject();
    }

    public void leArquivo(){
        /**
         * Lê arquivo HTML
         */
    }

    public void recuperaImagemDoArquivo(String nomeDoArquivo){
        /**
         * recupera as imagens do arquivo html transferido
         */
    }

    public void transfereDados() throws IOException{
        Comando p = new Comando(Cliente.getComando());
        System.out.println("Valor transferido: " + p.getComando());
        
        ObjectOutputStream output = new ObjectOutputStream(socketCliente.getOutputStream());
        output.flush();

        //Escrevendo no socket
        output.writeObject(p);
        output.flush();
        output.close();

        encerraConexao();
        

    }

    public void estabeleceConexao() throws UnknownHostException, IOException{
        /**
         * estabelece conexão com o servidor
         */
        Cliente.socketCliente = new Socket(Cliente.ipServidor, Cliente.portaServidor);
    }

    public static void encerraConexao() throws IOException{
        /**
         * fecha conexão com o servidor
         */
        Cliente.socketCliente.close();

    }

    public String getIpServidor() {
        return ipServidor;
    }

    public void setIpServidor(String ipServidor) {
        Cliente.ipServidor = ipServidor;
    }

    public int getPortaServidor() {
        return portaServidor;
    }

    public void setPortaServidor(int portaServidor) {
        Cliente.portaServidor = portaServidor;
    }

    public static int getComando() {
        return comando;
    }

    public static void setComando(int comando) {
        Cliente.comando = comando;
    }

}
